//
//  LYSafeUserInfo.h
//  GeiNiHua
//
//  Created by 吴浪 on 16/6/28.
//  Copyright © 2016年 GNH. All rights reserved.
//  存取KeyChain信息（由用户自己完善）

#import <Foundation/Foundation.h>

typedef struct {
    NSString *(*gainSafeUserInfoKey)(); /**< 获取本地用户信息相关交互 秘钥 */
} LYSafeUserInfo_t;

#define SafeUserInfo ([LYSafeUserInfo sharedSafeUserInfo])
@interface LYSafeUserInfo : NSObject

+ (LYSafeUserInfo_t *)sharedSafeUserInfo;
+ (void)destroy;











/***** 扩展 *****/

/**
 * 执行类中,字符串所对应的无返回值方法（imp）
 * @param objectClass     方法所在类
 * @param isClassFunction 是否为 类方法
 * @param operate         Block: void(^)(_VIMP imp)
 */
+ (void)runVFunction:(NSString *)function
           objcClass:(__unsafe_unretained Class)cls
     isClassFunction:(BOOL)isClsFunction
             operate:(void(^)(void (*imp) (id, SEL, ...)))operate;
/**
 * 执行类中 字符串所对应的有返回值方法（imp）
 * @param objectClass     方法所在类
 * @param isClassFunction 是否为 类方法
 * @param operate         Block: void(^)(_IMP imp)
 */
+ (void)runIFunction:(NSString *)function
           objcClass:(__unsafe_unretained Class)cls
     isClassFunction:(BOOL)isClsFunction
             operate:(void(^)(id (*imp) (id, SEL, ...)))operate;

@end
